// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

#pragma once

#include <cxxreact/CxxModule.h>
#include <folly/dynamic.h>
#include <memory>
#include <vector>

namespace facebook { namespace react { class MessageQueueThread;  } }

namespace react { namespace uwp {

class LocationObserverModule : public facebook::xplat::module::CxxModule
{
public:
  LocationObserverModule(const std::shared_ptr<facebook::react::MessageQueueThread>& defaultQueueThread);
  virtual ~LocationObserverModule();

  // CxxModule
  std::string getName() override;
  std::map<std::string, folly::dynamic> getConstants() override;
  auto getMethods() -> std::vector<Method> override;

  static const char* name;

private:
  class LocationObserver;
  std::shared_ptr<LocationObserver> m_locationObserver;
};

} }
